Controlling movements of a robot running on tracks

ABSTRACT

A method for controlling movement of a robot on a plurality of tracks laid out on a frame structure forming a grid includes detecting a current speed and an angular position for one wheel in a pair of wheels of the robot; tracking a current position of the robot relative to at least a portion of the frame structure; and setting a driving sequence for the pair of wheels, based on a position information of the robot.

BACKGROUND

One or more embodiments of the present invention relate to a remotely operated robot moving on tracks laid out on a frame structure, and more specifically to a method and controller for controlling each wheel and synchronising pairs of wheels of the robot for moving it smoothly from a start to a stop position relative the frame structure.

BACKGROUND

A remotely operated vehicle or robot for picking up storage bins from a storage system is known. A detailed description of a relevant prior art storage system is presented in EP1037828B1, and details of a prior art vehicle being suitable for such a storage system is disclosed in detail in Norwegian patent NO317366B1 and WO2015193278A1. Such prior art storage systems comprise a three-dimensional storage grid containing storage bins that are stacked on top of each other up to a certain height. The storage grid is normally constructed as aluminium columns interconnected by top rails or tracks, onto which a plurality of remotely operated vehicles, or robots, are arranged to move laterally. Each vehicle is equipped with motors for moving the vehicle from one position to another and for driving a lift device adapted for picking up, carrying, and placing bins that are stored in the storage grid. A power supply is supplying power to the motors and drivers comprised in the vehicle, e.g. a rechargeable battery. The vehicle typically communicates with a control system via a wireless link and can be recharged at a charging station when needed.

Rotation of the wheels may be driven by belts connected to the wheels or by individual driving means situated at or at least partly within the wheels. The last example will provide a responsive robot with high control of acceleration and deceleration between a start and a stop position.

When the wheels of a robot moving on straight tracks are controlled and operated individually, they must be controlled as if they where one entity for moving the robot in a steady movement without being driving the robot in an off-lead angle.

Ideally similar sized wheels will rotate at the same speed when a robot is moving. When each wheel is driven separately, there are however several factors that may contribute to different rotation speeds for the wheels. Such factors may be spinning, gliding and loading the wheels differently. If this occurs, the movements of the robot will not be smooth and it may be driven in an off-lead angel.

It is thus an object of the present invention to provide a method and device for optimal control of the movements of a robot for moving it smoothly from a start to a stop position on tracks irrespective of any disturbances that may occur for the wheels when rolling on the tracks. This is achieved by setting up speed driving sequences for controllers controlling each wheel of the robot and where the controller is synchronising pairs of wheels according to the speed driving sequence for moving the robot smoothly from a start to a stop position.

SUMMARY

One or more embodiments of the invention is defined by a method for controlling movements of a robot from a start to a stop position, where the robot is moving on tracks laid out on a frame structure forming a grid, the robot having pairs of wheels being controlled by local controllers connected to individual drivers for each wheel.

The method is characterized in monitoring each wheel with speed and angular position sensors connected to the local controllers controlling pairs of wheels, and where the following steps are being performed in a master controller communicating with each of the local controllers:

-   -   receiving a start and stop position of the robot;     -   receiving current speed and angular position of each wheel from         the local controllers;     -   receiving a global position of the robot relative to the frame         structure;     -   setting up individual speed driving sequences for each pair of         wheels based on current speed and angular position of each         wheel, current global position of the robot and the start and         stop position of the robot;     -   transmitting the speed driving sequence to each of the local         controllers for controlling accelerating and decelerating of         each pair of wheels, and     -   repeating the steps above for controlling the movements of the         robot from a start to a stop position.

Further features of the method are defined in the dependent claims.

One or more embodiments of the invention is further defined by a master controller for controlling movements of a robot from a start to a stop position, where the robot is moving on tracks laid out on a frame structure forming a grid, the robot having pairs of wheels being controlled by local controllers connected to individual drivers for each wheel. The master controller is connected to the local controllers controlling each pair of wheels, where the local controllers are providing speed and angular position of each wheel to the master controller by means of speed and angular sensors connected to the local controllers, and where the master controller comprises:

-   -   input means for receiving a start and stop position of the robot         and current speed and angular position of each wheel provided by         the local controllers;     -   input means for receiving a global position of the robot         relative to the frame structure;     -   calculation means for setting up individual speed driving         sequences for each pair of wheels based on current speed and         angular position of each wheel, current global position of the         robot and the start and stop position of the robot;     -   output means for transmitting the speed driving sequence to each         of the local controllers controlling accelerating and         decelerating of each pair of wheels.

Further features of the master controller are defined in the dependent claims.

BRIEF DESCRIPTION OF THE DRAWINGS

One or more embodiments of the invention will now be described with reference to the figures, where:

FIG. 1 shows a section of a storage system where several robots are arranged directly above respective storage columns in accordance with one or more embodiments;

FIG. 2 shows an example of a remotely operated robot with a set of individually driven wheels in accordance with one or more embodiments, and

FIG. 3 shows an overview of the master controller and local controllers for controlling pairs of wheels of a robot according to one or more embodiments.

One or more embodiments of the invention is defined by a method and controller for controlling each wheel and synchronising pairs of wheel of the robot for moving it smoothly from a start to a stop position. Controlled smooth movements of a robot is especially important when the robot is moving on tracks for moving it efficiently from one point to another while avoiding movements in an offlead angle. FIGS. 1 and 2 illustrate robots moving on track on top of a storage system.

FIG. 1 shows a section of a storage system 10 where several remotely operated robots 50 are arranged directly above respective storage columns 30 made by frame structure making a bin storage grid 40. The upper part of the bin storage grid 40 is provided with dedicated supporting tracks 20 for the robots 50 to run on. The robots 50 are configured to move in x and y directions on the tracks 20, and to receive a storage bin from a storage column 30 within the bin storing grid 40.

FIG. 2 shows an example of a remotely operated robot 50. The robot 50 is adapted for picking up storage bins from an underlying storage system 10. The body of the robot 50 comprises a cavity for receiving a storage bin. In this example, the cavity is arranged centrally within the robot 50 and is surrounded by the body of the robot 50. The body of the robot 50 further comprises a lifting device for lifting and lowering a storage bin. One or more embodiments of the invention are however applicable to any type of robot with wheels.

The robot 50 further comprises wheels 60 allowing movement of the robot 50 along first and second directions x, y on the underlying storage system 10. The wheels 60 are connected to drivers situated at or at least partly within the wheels 60 for providing driving force to the robot 50. This configuration will occupy minimum space within the robot 50, thereby freeing space for other installations in the robot 50.

The robot 50 further comprises control means configured to control the movements of the robot 50. The control means for each wheel 60 are connected to the drivers which are connected to each wheel 60. The robot 50 is further provided with wireless communication for receiving and transmitting signals.

FIG. 3 shows an overview of a master controller according to one or more embodiments of the invention. The master controller being adapted for controlling movements of a robot 50 from a start to a stop position, where the robot 50 is moving on tracks laid out on a frame structure forming a grid, the robot 50 having pairs of wheels, W₁ and W₂, W₃ and W₄, being controlled by local controllers, Controller₁₋₂, Controller₃₋₄, and individual drivers, Drive₁, Drive₂, Drive₃, Drive₄, as illustrated in the figure. Each individual driver controls speed and force to be applied to the connected wheel.

The inventive method for controlling each wheel and synchronising pairs of wheel of a robot 50 comprising several steps performed by the master controller. The master controller may be housed inside the robot 50, but it may also be located externally to this. This does however require more wireless communication between the individual local control means housed in the robot 50 and the master controller.

The first step is receiving a start and a stop position for the robot 50.

The start and stop positions will depend on the route set up for a robot 50 prior to picking up a box from a storage column 30 and placing it in another storage column 30. A route for a specific robot 50 will be set up by a supervisory system having control of all storage bins and their content.

The start position of a robot 50 will be the position where it is standing still. The robot 50 will keep track of this position at all time. This position can be acquired in different ways. One way is to track the x, y position of the robot 50 relative to the tracks on top of the frame structure. This will be the global position of the robot 50. This position can be acquired by means of tracking devices located externally to the robot 50 or by devices integrated in the robot 50. A combination of external and integrated tracking devices will increase the accuracy of position determination.

By using integrated tracking devices, the robot 50 will be able to keep track of its position when moving on the tracks, which are laid out as a grid on top of the frame structure, by detecting the number of crossings passed in x- and y-directions from a known start position, i.e. like moving between cell in a spreadsheet.

In addition to the start position, the master controller must also receive information of a stop location for controlling movements of the robot 50.

If a robot 50 is to move only in one direction according to a route for performing a complete operation, for picking up a storage bin from one storage column and lowering it in another storage column, there will only be one start and stop position for the complete operation. It is however more likely that a robot 50 move in different x- and y-directions, according to a route, for reaching a final destination. This may be the case if the complete route is running along different directions or due to other robots blocking the shortest route from a start to a stop position. In this case the first start position will be the position where the robot 50 is picking up or lowering a storage bin. The first stop position will then be the position of a route where the robot 50 must change direction for following the route. This stop position will then be the next start position etc. If the robot 50 has to change direction three times the will be three start and stop positions, i.e. a first, second and third leg of a route.

After start and stop positions of a first leg of a route of the robot 50 have been established, the next step is letting the master controller receive current speed V₁, V₂, V₃, V₄ and angular position pos₁, pos₂, pos₃, pos₄ of each wheel of the robot 50. This information is provided by means of speed and angular position sensors measuring these parameters on each wheel.

Current speed and angular position for each wheel are input to local controllers, Controller₁₋₂, Controller₃₋₄ which each are controlling synchronisation of pairs of wheels W₁ and W₂, W₃ and W₄.

When the robot 50 is moving along a route, the position of the robot 50 relative to the frame structure is tracked continuously and provided to the master controller.

In one embodiment, the position of the robot 50 is a global x, y position provided by an external tracking device tracking the robot 50 relative to the tracks.

In one or more other embodiments of the invention, the robot 50 further comprises track sensors for detecting and absolute position relative to the track it is currently driving on. Combining absolute position of the robot 50 with the global position will improve the accuracy of the determined position.

When the master controller has received information of the start and stop positions, current speed and angular position of each wheel, W₁, W₂, W₃ and W₄, as well as the current position of the robot 50, the master controller will use this information for setting up individual speed driving sequences, V_(seq1-2), V_(seq3-4), for each pair of wheels, W₁₋₂ and W₃₋₄.

Each speed driving sequence, V_(seq1-2), V_(seq3-4), is established based on speed and angular position data for each wheel in view of the set start and stop position and the current position of the robot 50.

These speed driving sequences V_(seq1-2), V_(seq3-4) are transmitted to each of the local controllers Controller₁₋₂, Controller₃₋₄ which in turn control the drive for each wheel Drive₁, Drive₂, Drive₃, Drive₄.

Each driving sequence will define a series of speed data defining acceleration, constant speed and deceleration for each pair of wheels during the movement from a start to a stop position. The local controllers, Controller₁₋₂, Controller₃₋₄, for each pair of wheels will use the speed driving sequences V_(seq1-2), V_(seq3-4) for controlling the individual drivers, Drive₁, Drive₂, Drive₃, Drive₄ for a wheel.

When the robot 50 is moving along its route, data defining the speed driving sequences will continuously be updated according to acceleration, constant speed and deceleration of the robot 50. This means that the driving sequences defining the speed for pairs of wheels may change along the route. The update rate of speed driving sequences can be set and transmitted at a predetermined rate. It may also change along the route of the robot 50 when it is moving from a start to a stop position.

The different steps defined above will be repeated until the robot 50 has reached its destination, or when it is to change direction, i.e. the steps are repeated between a start and stop position for the robot 50.

In one or more embodiments of the invention, the local controller controlling pairs of wheels will control the drive of a wheel to adjust the speed of a wheel 60 if current speed of the one wheel 50 is deviating from the set speed of the pair of wheels set by the speed driving sequence. This means that pairs of wheels along the same axis normally to the driving direction always will be synchronised to the speed set by the speed driving sequence irrespectively of possible factors slowing down the speed of a wheel, e.g. spinning, gliding, obstacles etc.

The local controllers are thus keeping pairs of wheels synchronised according to a set speed driving sequence. This will provide precise control of movements of a robot 50 even if the speed of one or several wheels for some reason are deviating form the speed set by the speed driving sequence.

The synchronisation can be performed at a fast rate for ensuring that pairs of wheels are totally synchronised. Typically, the speed and angular position of each wheel is measured 60 000 times each second, and corresponding continuous calculations are performed for controlling the drive of each wheel for keeping pairs of wheels synchronised to the speed set by the speed driving sequence.

The method described above provides optimal control of the movements of a robot 50 for moving it smoothly without an offlead angle from a start to a stop position irrespective of any disturbances that may occur for the wheels when rolling on the tracks.

One or more embodiments of the present invention are also defined by a software program product that when executed by a possessor performs the method described above. The processor is part of or connected to the master controller.

One or more embodiments of the invention are also defined by a controller for controlling movements of the robot 50 described above when moving from a start to a stop position. This will act as a master controller for the movements of the robot 50.

The master controller is connected to local controllers, Controller₁₋₂, Controller₃₋₄, controlling pair of wheels, W₁₋₂ and W₃₋₄. The local controllers, Controller₁₋₂, Controller₃₋₄, are providing speed and angular position data of each wheel 60 to the master controller by means of speed and angular sensors connected to the local controllers.

The master controller comprises input means for receiving a start and stop position of the robot 50 as well as current speed and angular position of each wheel 60 which is provided by the local controllers, Controller₁₋₂, Controller₃₋₄. It further comprises input means for receiving the position of the robot 50 relative to the frame structure.

The master controller further comprises calculation means for setting up speed driving sequences, V_(seq1-2), V_(seq3-4), for each pair of wheels 60, W₁₋₂ and W₃₋₄, based on current speed and angular position of each wheel 60, current position of the robot 50 and the start and stop position of the robot 50.

The master controller further comprises output means for transmitting the speed driving sequences, V_(seq1-2), V_(seq3-4), to each of the local controllers, Controller₁₋₂, Controller₃₋₄ thereby controlling accelerating and decelerating of each pair of wheels 60, W₁₋₂ and W₃₋₄. Speed data is thus controlled by the master controller and may be updated each 5 ms.

The master controller is in one embodiment housed inside the robot 50. It is then connected to the local controllers Controller₁₋₂, Controller₃₋₄, controlling pairs of wheels, W₁₋₂ and W₃₋₄, and reading speed and angular position data from each wheel.

The master controller may in one embodiment be connected to a device providing a global position relative to the frame structure. In another embodiment, this information may be provided by external means transmitting position data of the robot 50 to the master controller. A combination of onboard and external means for providing a global position of the robot 50 is also feasible.

The accuracy for determining the position of the robot 50 can be improved by providing local position data provided by track sensors comprised in the robot 50.

One or more embodiments of the present invention will provide controlled and smooth movements of a robot 50 that is moving. The robot will always move evenly along the tracks, i.e. prevent movements of the robot 50 in an offlead angle due to skewed load, slipping or friction issues.

Although the disclosure has been described with respect to only a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that various other embodiments may be devised without departing from the scope of the present invention. Accordingly, the scope of the invention should be limited only by the attached claims. 

What is claimed is:
 1. A method for controlling movement of a robot on a plurality of tracks laid out on a frame structure forming a grid, the method comprising: detecting a current speed and an angular position for one wheel in a pair of wheels of the robot; tracking a current position of the robot relative to at least a portion of the frame structure; and setting a driving sequence for the pair of wheels, based on a position information of the robot.
 2. The method according to claim 1, wherein the driving sequence for the pair of wheels is based on a stop position of the robot, the current position of the robot, and the current speed and the angular position of the one wheel.
 3. The method according to claim 2, wherein the driving sequence for the pair of wheels is further based on a start position of the robot.
 4. The method according to claim 2, wherein the driving sequence defines an acceleration, a deceleration, and a set speed for moving the robot from the current position to the stop position.
 5. The method according to claim 4, further comprises: synchronizing movement of the pair of wheels based on the driving sequence; and adjusting movement of the one wheel, when the current speed detected for the one wheel deviates from the set speed defined by the driving sequence, such that movements of the pair of wheels are synchronized.
 6. The method according to claim 1, wherein the current position of the robot is represented by a (x, y) information relative to the frame structure, provided by an external tracking device.
 7. The method according to claim 1, wherein the current position of the robot is a local position of the robot relative to a track on which the robot is moving, provided by a tracking device disposed in the robot.
 8. The method according to claim 1, wherein the setting step is performed repeatedly at a predetermined rate.
 9. The method according to claim 1, further comprises setting a plurality of driving sequences corresponding to a plurality of pair of wheels.
 10. The method according to claim 1, wherein the driving sequence is set based on a plurality of start positions and a plurality of stop positions according to a route the robot is to follow.
 11. The method according to claim 1, wherein the pair of wheels are along a same axis normal to a driving direction of the robot.
 12. A system for controlling movement of a robot on tracks laid out on a frame structure forming a grid, wherein the system comprises: the robot having a pair of wheels; a plurality of detection devices configured to detect a current speed and an angular position for one wheel in the pair of wheels, a tracking device configured to provide a current position of the robot relative to at least a portion of the frame structure; and a master controller configured to calculate a driving sequence for the pair of wheels, based on a position information of the robot.
 13. The system according to claim 12, wherein the driving sequence is calculated based on a stop position of the robot, the current position of the robot, and the current speed and the angular position of the one wheel.
 14. The system according to claim 13, wherein the driving sequence is calculated based on a start position of the robot.
 15. The system according to claim 13, wherein the driving sequence defines an acceleration, a deceleration, and a set speed for moving the robot from the current position to the stop position.
 16. The system according to claim 15, further comprises a local controller configured to control synchronized movement of the pair of wheels based on the driving sequence, and configured to adjust movement of the one wheel, when the current speed detected for the one wheel deviates from the set speed defined by the driving sequence, such that movements of the pair of wheels are synchronized.
 17. The system according to claim 12, wherein the tracking device is disposed external to the robot to provide the current position represented by a (x, y) information relative to the frame structure.
 18. The system according to claim 12, wherein the tracking device is disposed in the robot to provide the current position which is a local position of the robot relative to a track on which the robot is moving.
 19. The system according to claim 12, wherein the master controller is configured to repeatedly calculate the driving sequence at a predetermined rate.
 20. The system according to claim 12, wherein the pair of wheels are along a same axis normal to a driving direction of the robot.
 21. A non-transitory computer-readable medium storing a software program product that when executed by a processor performs a method comprising: receiving a current speed and an angular position of one wheel in a pair of wheels of a robot; receiving a current position of the robot; and calculating a driving sequence for the pair of wheels, based on a position information of the robot.
 22. The method according to claim 21, further comprises calculating the driving sequence based on a stop position of the robot, the current position of the robot, and the current speed and the angular position of the one wheel.
 23. The method according to claim 21, further comprises calculating the driving sequence based on a start position of the robot.
 24. The method according to claim 21, further comprising transmitting the driving sequence to a local controller to control synchronized movement of the pair of wheels based on the driving sequence.
 25. The method according to claim 22, wherein the driving sequence defines an acceleration, a deceleration, and a set speed for moving the robot from the current position to the stop position.
 26. The method according to claim 21, the calculating step is performed repeatedly at a predetermined rate. 